 /**
 * Copyright (c) 2009, Microsoft
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *     * Redistributions of source code must retain the above copyright
 *       notice, this list of conditions and the following disclaimer.
 *     * Redistributions in binary form must reproduce the above copyright
 *       notice, this list of conditions and the following disclaimer in the
 *       documentation and/or other materials provided with the distribution.
 *     * Neither the name of Microsoft nor the
 *       names of its contributors may be used to endorse or promote products
 *       derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY Microsoft ''AS IS'' AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL Microsoft BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * @category   Microsoft
 * @package    WebErrorPHPToolkit
 * @subpackage Error
 * @version    $Id: string_format.js, v 1.0 2009-10-09 08:00:00Z unknown $
 * @copyright  Copyright (c) 2009, Microsoft (http://www.microsoft.com)
 * @author     a-jetann
 *
 * String.format using C# style.
 */

/**
 * Format Inline:
 * var str = "This is a {0} string using the {1} method.".format("formatted","inline");
 *
 * @return string
 */
if(!String.prototype.format)
{
  String.prototype.format = function() {
                              var txt = this;
                              for(var i=0;i<arguments.length;i++)
                              {
                                var exp = new RegExp('\\{' + (i) + '\\}','gm');
                                txt = txt.replace(exp,arguments[i]);
                              }
                              return txt;
                            };
}

/**
 * Format Static
 * var str = String.format("This is a {0} string using the {1} method.","formatted","static");
 *
 * @return string
 */
if(!String.format)
{
  String.format = function() {
                    for(var i=1;i<arguments.length;i++)
                    {
                      var exp = new RegExp('\\{' + (i-1) + '\\}','gm');
                      arguments[0] = arguments[0].replace(exp,arguments[i]);
                    }
                    return arguments[0];
                  };
}


